package com.ghck.server.service;
import java.util.List;

import com.ghck.server.model.RegionDict;
import com.ghck.server.model.query.RegionDictQuery;
import com.ghck.server.model.response.RegionDictRes;

/**
 * 地区  <br>
 * dict_region <br>
 * v1.0 2016-05-01
 */
 public interface RegionDictService {
	
	/**
 	*根据ID删除 地区
 	*/
 	public Integer deleteRegionDictById(Integer id);
 	
 	/**
 	*新增 地区
 	*/
 	public Integer batchInsertRegionDict(List<? extends RegionDict> regionDicts);
 	
 	/**
 	*新增 地区
 	*/
 	public Integer insertRegionDict(RegionDict domain);
 
 	
 	/**
 	*更新 地区
 	*/
 	public Integer updateRegionDict(RegionDict domain);
 	
 	/**
 	*根据ID查询 地区
 	*/
 	public RegionDictRes findRegionDictById(Integer id);

	/**
 	*通过query 查询 地区
 	*/
	public List<RegionDict> findRegionDictByQuery(RegionDictQuery query);	
	
	/**
 	*通过query count总条数
 	*/
 	public Integer countRegionDictByQuery(RegionDictQuery query);
 	
 	/**
 	* 通过ids查询
 	*/
 	public List<RegionDict> findRegionDictByIds(List<Integer> ids);
 	
 	/**
 	*根据name查询 地区
 	*/
	public RegionDict findByName(String name);
	
	/**
 	*获取所有字典 地区
 	*/
	public List<RegionDictRes> findAll();
	
	public List<RegionDictRes> findAllWithCache();
	
	/**
	 * 包括自己在内的所有子
	 * @param parentId
	 * @return
	 */
	public List<Integer> findSelfAllChildrenId(Integer parentId);
	/**
	 * 只找一层
	 * @param parentId
	 * @return
	 */
	public List<RegionDictRes> findByParentId(Integer parentId);
	
	public void syncSingletonRedis(Integer regionId);
	
	public void syncInRedis(boolean force);	
}	